/*
 * V5ChartUtils.java
 * business
 *
 * Created by SunDing on 2017/1/11.
 *
 * Copyright (c) 2017年 yidiandao. All rights reserved.
 */

package com.yidiandao.business.utils;

import static com.yidiandao.business.utils.UIUtils.getString;

import android.os.Bundle;

import com.v5kf.client.lib.V5ClientAgent;
import com.v5kf.client.lib.V5ClientConfig;
import com.v5kf.client.ui.ClientChatActivity;
import com.yidiandao.business.BuildConfig;
import com.yidiandao.business.R;
import com.yidiandao.business.ui.widget.view.V5ChatListenerHelper;

/** v5客服 */
public class V5ChartUtils {
    public static void toV5ChartActivity() {
        initV5ClientConfig();
        Bundle bundle = new Bundle();
        // 下拉刷新数量，默认为10
        bundle.putInt("numOfMessagesOnRefresh", 10);
        // 开场显示历史消息数量，默认为0
        bundle.putInt("numOfMessagesOnOpen", 10);
        // 是否允许发送语音
        bundle.putBoolean("enableVoice", true);
        // 是否显示对话双方的头像
        bundle.putBoolean("showAvatar", true);

        // 设置开场白模式，默认为clientOpenModeDefault，可根据客服启动场景设置开场问题
        // clientOpenModeDefault	//
        // 默认开场白方式（无历史消息显示则显示开场白，优先以设置的param字符串为开场白，param为null则使用后台配置的开场白）
        // clientOpenModeQuestion	//
        // 自定义问题开场白，param字符串为问题内容（不为空），设置开场问题获得对应开场白（此模式不可与优先人工客服同用，否则将失效）
        // clientOpenModeNone		// 无开场白方式，仅显示历史消息
        // clientOpenModeAutoHuman  // 开场自动转人工客服
        // bundle.putInt("clientOpenMode", V5ClientAgent.ClientOpenMode.clientOpenModeDefault
        // .ordinal());
        bundle.putString("clientOpenParam", getString(R.string.server_chat_say_hello));

        V5ClientAgent.getInstance().startV5ChatActivityWithBundle(UIUtils.getContext(), bundle);

        V5ClientAgent.getInstance()
                .setChatActivityListener(
                        new V5ChatListenerHelper() {

                            @Override
                            public void onChatActivityServingStatusChange(
                                    ClientChatActivity activity,
                                    V5ClientAgent.ClientServingStatus status) {
                                switch (status) {
                                    case clientServingStatusRobot:
                                    case clientServingStatusQueue:
                                        activity.setChatTitle(
                                                getString(R.string.server_chat_robot_service));
                                        break;
                                    case clientServingStatusWorker:
                                        activity.setChatTitle(
                                                V5ClientConfig.getInstance(UIUtils.getContext())
                                                        .getWorkerName());
                                        break;
                                    case clientServingStatusInTrust:
                                        activity.setChatTitle(
                                                getString(R.string.server_chat_robot_manage));
                                        break;
                                }
                            }
                        });
    }

    private static void initV5ClientConfig() {
        // V5客服系统客户端配置
        V5ClientConfig config = V5ClientConfig.getInstance(UIUtils.getContext());

        // 使用加密连接，默认true
        V5ClientConfig.USE_HTTPS = true;
        // 请求超时时间
        V5ClientConfig.SOCKET_TIMEOUT = 20000;

        // 显示日志，默认为true
        config.setShowLog(!BuildConfig.BUSINESS_RELEASE);
        // 显示日志级别，默认为全部显示
        config.setLogLevel(V5ClientConfig.LOG_LV_DEBUG);

        // 是否允许发送心跳包保活
        config.setHeartBeatEnable(true);
        // 心跳包间隔时间ms
        config.setHeartBeatTime(30000);

        // 设置用户昵称
        config.setNickname(PreferenceUtils.getNickName(UIUtils.getContext()));

        //系统设置的头像
        String maleAvatar = " http://rs.v5kf.com/upload/131068/14836698523.png";
        String famaleAvatar = "http://rs.v5kf.com/upload/131068/14836698805.png";
        if (!PreferenceUtils.getToken(UIUtils.getContext())
                .equals(PreferenceUtils.STRING_DEFAULT)) {
            // 设置用户性别: 0-未知  1-男  2-女
            config.setGender(Integer.parseInt(PreferenceUtils.getSex(UIUtils.getContext())));
            // 设置用户头像URL
            config.setAvatar(
                    PreferenceUtils.getSex(UIUtils.getContext()).equals("2")
                            ? famaleAvatar
                            : maleAvatar);
        } else {
            config.setGender(1);
            config.setAvatar(maleAvatar);
        }
        // 设置vip等级
        config.setVip(0);

        // 是否默认转人工客服
        config.setDefaultServiceByWorker(false);
    }
}
